Microprocessor-based embedded systems are often used to control processes, collect data, and perform computations. They are usually hidden in equipment, and have no man-machine interface, such as a keyboard Embedded systems find applications in consumer electronics, industrial electrical equipment and in telecommunications, for example.
The microprocessor of an embedded system has the capability to detecting a number of internal faults and abnormal operation of one or more of the external devices connected to it. Such devices may include a number of sensor devices and actuators. Known embedded systems have a limited capability to “work around” an abnormal or fault condition. In most instances of abnormal and fault conditions, the embedded system will fail and alarm conditions are raised to bring the fault(s) to the attention of an operator or technical support person. The operator or technical support person is then required to service the embedded system.
Often such systems are located remotely. In such instances, it is advantageous for alarm conditions to be communicated via a communications link to a master controller, which is some distance away from the embedded system. Servicing typically includes a service technician being called to the site and replacing the faulty embedded system, sensor device or actuator. This imposes a considerable cost, and also may result in significant “downtime” for the equipment which the embedded system controls,
The cost sensitivity and size restrictions of such systems restrict the implementation of complex fault diagnosis and fault rectification applications in the system. In particular, many embedded systems have limited Read Only Memory for storing code and Random Access Memory for use as workspace when executing such code.